#pragma once

#include "effectbase.h"

namespace VrDataCore
{
	class MeshDrawableActor;
	class VRDATACORE_EXPORT TranslationEffect:public EffectBase
	{
	public:
		TranslationEffect();
	protected:
		~TranslationEffect();
	public:
		virtual void buildPropertyMap();

		void setTranslationEffect(osg::Vec3 offset);
		osg::Vec3 getTranslationEffect();
		virtual osg::ref_ptr<CoreBase::ActorBase> clone();
		virtual void apply( CoreBase::ActorBase* proxy );
		virtual void unApply( CoreBase::ActorBase* proxy);
	private:
		osg::Vec3 _translationEffect;
	};

	class VRDATACORE_EXPORT RotationEffect:public EffectBase
	{
	public:
		RotationEffect();
	protected:
		~RotationEffect();
	public:
		virtual void buildPropertyMap();
		void setRotationEffect(osg::Vec3 offset);
		osg::Vec3 getRotationEffect();
		virtual osg::ref_ptr<CoreBase::ActorBase> clone();
		virtual void apply( CoreBase::ActorBase* proxy ) ;
		virtual void unApply( CoreBase::ActorBase* proxy ) ;
	private:
		osg::Vec3 _rotationEffect;
	};
}